package com.coupon.admin.service;

import com.coupon.admin.dto.AIRecommendationDTO;
import com.coupon.admin.dto.UserProfileDTO;
import com.coupon.admin.entity.Coupon;
import com.coupon.admin.entity.User;

import java.util.List;
import java.util.Map;

/**
 * AI个性化策略服务接口
 */
public interface AIPersonalizationService {
    
    /**
     * 生成个性化券推荐
     */
    List<Long> generatePersonalizedCoupons(Long userId, Integer limit);
    
    /**
     * 动态生成券面
     */
    Coupon generateDynamicCoupon(Long userId, String baseCouponId);
    
    /**
     * 智能调整券规则
     */
    boolean adjustCouponRules(Long couponId, Map<String, Object> adjustmentData);
    
    /**
     * 更新用户画像
     */
    boolean updateUserProfile(Long userId, UserProfileDTO profileDTO);
    
    /**
     * 获取用户画像
     */
    UserProfileDTO getUserProfile(Long userId);
    
    /**
     * 协同过滤推荐
     */
    List<Long> collaborativeFilteringRecommend(Long userId, Integer limit);
    
    /**
     * 基于内容的推荐
     */
    List<Long> contentBasedRecommend(Long userId, Integer limit);
    
    /**
     * 混合推荐算法
     */
    List<Long> hybridRecommend(Long userId, Integer limit);
    
    /**
     * 预测券的核销概率
     */
    Double predictCouponUsageProbability(Long userId, Long couponId);
    
    /**
     * 智能库存调整
     */
    boolean adjustCouponStock(Long couponId, String reason);
    
    /**
     * 生成个性化推送策略
     */
    AIRecommendationDTO generatePushStrategy(Long userId);
}
